package conexao;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Vector;
import modelo.Usuario;

public class TratadorConexao_Cliente extends AbstractConect {

  private static TratadorConexao_Cliente INSTANCE = null;
  private static Conexao_Cliente con = null;
  private static Protocolo_Cliente p = null;
  private static ArrayList<Conexao_Cliente> listCon = new ArrayList();

  public static TratadorConexao_Cliente getInstance() {
    if (TratadorConexao_Cliente.INSTANCE == null) {
      TratadorConexao_Cliente.INSTANCE = new TratadorConexao_Cliente();
    }
    return TratadorConexao_Cliente.INSTANCE;
  }

  //C(reate)R(etrieve)U(pdate)D(elete)
  public static void conectar() {
    p = new Protocolo_Cliente();

      //while (listen) {
        
        //Socket s = ss.accept();
        con = new Conexao_Cliente("localhost",4444);
        con.start();
      //}
  }

  public static void desconectar() throws IOException {
//    listen=false;
    if (con != null) {
      con.disconnect();
    }
  }

  public static void sleep() throws IOException {
    //listen=false;
  }

  public static void bind() {
  
  }
  
  public static void send(Conexao_Cliente c, Vector acao) {
      
      if((Integer)acao.get(0) ==0){
        TratadorConexao_Cliente.getInstance().getSuporteEventos().disparaConectEvent(
                new ConectEvent("msg:" + acao.get(1), ConectEvent.MSG));
        //enviarMSGAll((String)acao.get(1));
      }
  }

  public static void addConexao(Conexao_Cliente c) {
    Usuario u = new Usuario();
    u.setCon(con);
    listCon.add(c);
  }

  public static void enviarMSGAll(String msg) {
    Vector acao = new Vector();
    acao.add(0);
    acao.add(msg);
    con.send(acao);
  }
}